Rules for integrands of the form(((a+b (x^n)))^p) (((c+d (x^n)))^q) (((e+f (x^n)))^r)
when b c-a d≠0 ∧ b e-a f≠0 ∧ d e-c f≠0

0:  ∫(((a+b (x^n)))^p) (((c+d (x^n)))^q) (((e+f (x^n)))^r)dx  when (p|q|r)∈(SuperPlus[ℤ])

Derivation: Algebraic expansion

Rule 1.1.3.5.1: If (p|q|r)∈(SuperPlus[ℤ]), then

∫(((a+b (x^n)))^p) (((c+d (x^n)))^q) (((e+f (x^n)))^r)dx  ⟶  ∫ExpandIntegrand[(((a+b (x^n)))^p) (((c+d (x^n)))^q) (((e+f (x^n)))^r),x]dx

Program code:

Int[(a_+b_.*x_^n_)^p_.*(c_+d_.*x_^n_)^q_.*(e_+f_.*x_^n_)^r_.,x_Symbol] :=
  Int[ExpandIntegrand[(a+b*x^n)^p*(c+d*x^n)^q*(e+f*x^n)^r,x],x] /;
FreeQ[{a,b,c,d,e,f,n},x] && IGtQ[p,0] && IGtQ[q,0] && IGtQ[r,0]

1.  ∫(((a+b (x^n)))^p) (((c+d (x^n)))^q) (e+f (x^n))dx

1:  ∫((e+f (x^n))/((a+b (x^n)) (c+d (x^n))))dx

Derivation: Algebraic expansion

Basis: ((e+f z)/((a+b z) (c+d z)))==((b e-a f)/((b c-a d) (a+b z)))-((d e-c f)/((b c-a d) (c+d z)))

Rule 1.1.3.5.1.1:

∫((e+f (x^n))/((a+b (x^n)) (c+d (x^n))))dx  ⟶  ((b e-a f)/(b c-a d))∫(1/(a+b (x^n)))dx-((d e-c f)/(b c-a d))∫(1/(c+d (x^n)))dx

Program code:

Int[(e_+f_.*x_^n_)/((a_+b_.*x_^n_)*(c_+d_.*x_^n_)),x_Symbol] :=
  (b*e-a*f)/(b*c-a*d)*Int[1/(a+b*x^n),x] - 
  (d*e-c*f)/(b*c-a*d)*Int[1/(c+d*x^n),x] /;
FreeQ[{a,b,c,d,e,f,n},x]

2:  ∫((e+f (x^n))/((a+b (x^n)) (Sqrt[c+d (x^n)])))dx

Derivation: Algebraic expansion

Basis: ((e+f z)/(a+b z))==(f/b)+((b e-a f)/(b(a+b z)))

Rule 1.1.3.5.1.2:

∫((e+f (x^n))/((a+b (x^n)) (Sqrt[c+d (x^n)])))dx  ⟶  (f/b)∫(1/(Sqrt[c+d (x^n)]))dx+((b e-a f)/b)∫(1/((a+b (x^n)) (Sqrt[c+d (x^n)])))dx

Program code:

Int[(e_+f_.*x_^n_)/((a_+b_.*x_^n_)*Sqrt[c_+d_.*x_^n_]),x_Symbol] :=
  f/b*Int[1/Sqrt[c+d*x^n],x] + 
  (b*e-a*f)/b*Int[1/((a+b*x^n)*Sqrt[c+d*x^n]),x] /;
FreeQ[{a,b,c,d,e,f,n},x]

3:  ∫((e+f (x^n))/((Sqrt[a+b (x^n)])(Sqrt[c+d (x^n)])))dx

Derivation: Algebraic expansion

Basis: ((e+f z)/(Sqrt[a+b z]))==((f(Sqrt[a+b z]))/b)+((b e-a f)/(b(Sqrt[a+b z])))

Rule 1.1.3.5.1.3:

∫((e+f (x^n))/((Sqrt[a+b (x^n)])(Sqrt[c+d (x^n)])))dx  ⟶  (f/b)∫((Sqrt[a+b (x^n)])/(Sqrt[c+d (x^n)]))dx+((b e-a f)/b)∫(1/((Sqrt[a+b (x^n)])(Sqrt[c+d (x^n)])))dx

Program code:

Int[(e_+f_.*x_^n_)/(Sqrt[a_+b_.*x_^n_]*Sqrt[c_+d_.*x_^n_]),x_Symbol] :=
  f/b*Int[Sqrt[a+b*x^n]/Sqrt[c+d*x^n],x] + 
  (b*e-a*f)/b*Int[1/(Sqrt[a+b*x^n]*Sqrt[c+d*x^n]),x] /;
FreeQ[{a,b,c,d,e,f,n},x] && 
  Not[EqQ[n,2] && (PosQ[b/a] && PosQ[d/c] || NegQ[b/a] && (PosQ[d/c] || GtQ[a,0] && (Not[GtQ[c,0]] || SimplerSqrtQ[-b/a,-d/c])))]

4.  ∫(((a+b (x^n)))^p) (((c+d (x^n)))^q) (e+f (x^n))dx  when p<-1

1:  ∫((e+f (x^2))/((Sqrt[a+b (x^2)]) (((c+d (x^2)))^(3/2))))dx  when (b/a)>0 ∧ (d/c)>0

Derivation: Algebraic expansion

Basis: ((e+f (x^2))/((Sqrt[a+b (x^2)]) (((c+d (x^2)))^(3/2))))==((b e-a f)/((b c-a d) (Sqrt[a+b (x^2)]) (Sqrt[c+d (x^2)])))-(((d e-c f) (Sqrt[a+b (x^2)]))/((b c-a d) (((c+d (x^2)))^(3/2))))

Rule 1.1.3.5.1.4.1: If (b/a)>0 ∧ (d/c)>0, then

∫((e+f (x^2))/((Sqrt[a+b (x^2)]) (((c+d (x^2)))^(3/2))))dx  ⟶  ((b e-a f)/(b c-a d)) ∫(1/((Sqrt[a+b (x^2)]) (Sqrt[c+d (x^2)])))dx-((d e-c f)/(b c-a d)) ∫((Sqrt[a+b (x^2)])/(((c+d (x^2)))^(3/2)))dx

Program code:

Int[(e_+f_.*x_^2)/(Sqrt[a_+b_.*x_^2]*(c_+d_.*x_^2)^(3/2)),x_Symbol] :=
  (b*e-a*f)/(b*c-a*d)*Int[1/(Sqrt[a+b*x^2]*Sqrt[c+d*x^2]),x] - 
  (d*e-c*f)/(b*c-a*d)*Int[Sqrt[a+b*x^2]/(c+d*x^2)^(3/2),x] /;
FreeQ[{a,b,c,d,e,f},x] && PosQ[b/a] && PosQ[d/c]

2:  ∫(((a+b (x^n)))^p) (((c+d (x^n)))^q) (e+f (x^n))dx  when p<-1 ∧ q>0

Derivation: Binomial product recurrence 1 with p=0

Rule 1.1.3.5.1.4.2: If  p<-1 ∧ q>0, then

∫(((a+b (x^n)))^p) (((c+d (x^n)))^q) (e+f (x^n))dx  ⟶  
-(((b e-a f)x (((a+b (x^n)))^(p+1))(((c+d (x^n)))^q))/(a b n(p+1)))+
(1/(a b n(p+1)))∫(((a+b (x^n)))^(p+1)) (((c+d (x^n)))^(q-1)) (c (b e n (p+1)+b e-a f)+d (b e n (p+1)+(b e-a f) (n q+1)) (x^n))dx

Program code:

Int[(a_+b_.*x_^n_)^p_*(c_+d_.*x_^n_)^q_.*(e_+f_.*x_^n_),x_Symbol] :=
  -(b*e-a*f)*x*(a+b*x^n)^(p+1)*(c+d*x^n)^q/(a*b*n*(p+1)) + 
  1/(a*b*n*(p+1))*
    Int[(a+b*x^n)^(p+1)*(c+d*x^n)^(q-1)*Simp[c*(b*e*n*(p+1)+b*e-a*f)+d*(b*e*n*(p+1)+(b*e-a*f)*(n*q+1))*x^n,x],x] /;
FreeQ[{a,b,c,d,e,f,n},x] && LtQ[p,-1] && GtQ[q,0]

3:  ∫(((a+b (x^n)))^p) (((c+d (x^n)))^q) (e+f (x^n))dx  when p<-1

Derivation: Binomial product recurrence 2a with p=0

Rule 1.1.3.5.1.4.3: If  p<-1, then

∫(((a+b (x^n)))^p) (((c+d (x^n)))^q) (e+f (x^n))dx  ⟶  
-(((b e-a f)x (((a+b (x^n)))^(p+1))(((c+d (x^n)))^(q+1)))/(a n(b c-a d)(p+1)))+
(1/(a n(b c-a d)(p+1)))∫(((a+b (x^n)))^(p+1)) (((c+d (x^n)))^q) (c(b e-a f)+e n (b c-a d)(p+1)+d(b e-a f) (n (p+q+2)+1) (x^n))dx

Program code:

Int[(a_+b_.*x_^n_)^p_*(c_+d_.*x_^n_)^q_.*(e_+f_.*x_^n_),x_Symbol] :=
  -(b*e-a*f)*x*(a+b*x^n)^(p+1)*(c+d*x^n)^(q+1)/(a*n*(b*c-a*d)*(p+1)) + 
  1/(a*n*(b*c-a*d)*(p+1))*
    Int[(a+b*x^n)^(p+1)*(c+d*x^n)^q*Simp[c*(b*e-a*f)+e*n*(b*c-a*d)*(p+1)+d*(b*e-a*f)*(n*(p+q+2)+1)*x^n,x],x] /;
FreeQ[{a,b,c,d,e,f,n,q},x] && LtQ[p,-1]

5:  ∫(((a+b (x^n)))^p) (((c+d (x^n)))^q) (e+f (x^n))dx  when q>0 ∧ n (p+q+1)+1≠0

Derivation: Binomial product recurrence 3a with p=0

Rule 1.1.3.5.1.5: If  q>0 ∧ n (p+q+1)+1≠0, then

∫(((a+b (x^n)))^p) (((c+d (x^n)))^q) (e+f (x^n))dx  ⟶  
((f x (((a+b (x^n)))^(p+1))(((c+d (x^n)))^q))/(b (n (p+q+1)+1)))+
(1/(b (n (p+q+1)+1)))∫(((a+b (x^n)))^p) (((c+d (x^n)))^(q-1)) (c (b e-a f+b e n (p+q+1))+(d(b e-a f)+f n q(b c-a d)+b d e n (p+q+1)) (x^n))dx

Program code:

Int[(a_+b_.*x_^n_)^p_.*(c_+d_.*x_^n_)^q_.*(e_+f_.*x_^n_),x_Symbol] :=
  f*x*(a+b*x^n)^(p+1)*(c+d*x^n)^q/(b*(n*(p+q+1)+1)) + 
  1/(b*(n*(p+q+1)+1))*
    Int[(a+b*x^n)^p*(c+d*x^n)^(q-1)*Simp[c*(b*e-a*f+b*e*n*(p+q+1))+(d*(b*e-a*f)+f*n*q*(b*c-a*d)+b*d*e*n*(p+q+1))*x^n,x],x] /;
FreeQ[{a,b,c,d,e,f,n,p},x] && GtQ[q,0] && NeQ[n*(p+q+1)+1,0]

6.  ∫(((((a+b (x^n)))^p) (e+f (x^n)))/(c+d (x^n)))dx

1:  ∫((e+f (x^4))/((((a+b (x^4)))^(3/4)) (c+d (x^4))))dx

Derivation: Algebraic expansion

Basis: ((e+f z)/((((a+b z))^(3/4)) (c+d z)))==((b e-a f)/((b c-a d) (((a+b z))^(3/4))))-(((d e-c f) (((a+b z))^(1/4)))/((b c-a d) (c+d z)))

Rule 1.1.3.5.1.6.1:

∫((e+f (x^4))/((((a+b (x^4)))^(3/4)) (c+d (x^4))))dx  ⟶  ((b e-a f)/(b c-a d))∫(1/(((a+b (x^4)))^(3/4)))dx-((d e-c f)/(b c-a d))∫((((a+b (x^4)))^(1/4))/(c+d (x^4)))dx

Program code:

Int[(e_+f_.*x_^4)/((a_+b_.*x_^4)^(3/4)*(c_+d_.*x_^4)),x_Symbol] :=
  (b*e-a*f)/(b*c-a*d)*Int[1/(a+b*x^4)^(3/4),x] - (d*e-c*f)/(b*c-a*d)*Int[(a+b*x^4)^(1/4)/(c+d*x^4),x] /;
FreeQ[{a,b,c,d,e,f},x]

2:  ∫(((((a+b (x^n)))^p) (e+f (x^n)))/(c+d (x^n)))dx

Derivation: Algebraic expansion

Basis: ((e+f z)/(c+d z))==(f/d)+((d e-c f)/(d (c+d z)))

Rule 1.1.3.5.1.6.2:

∫(((((a+b (x^n)))^p) (e+f (x^n)))/(c+d (x^n)))dx  ⟶  (f/d)∫(((a+b (x^n)))^p)dx+((d e-c f)/d)∫((((a+b (x^n)))^p)/(c+d (x^n)))dx

Program code:

Int[(a_+b_.*x_^n_)^p_*(e_+f_.*x_^n_)/(c_+d_.*x_^n_),x_Symbol] :=
  f/d*Int[(a+b*x^n)^p,x] + (d*e-c*f)/d*Int[(a+b*x^n)^p/(c+d*x^n),x] /;
FreeQ[{a,b,c,d,e,f,p,n},x]

7:  ∫(((a+b (x^n)))^p) (((c+d (x^n)))^q) (e+f (x^n))dx

Derivation: Algebraic expansion

Rule 1.1.3.5.1.7:

∫(((a+b (x^n)))^p) (((c+d (x^n)))^q) (e+f (x^n))dx  ⟶  e∫(((a+b (x^n)))^p)(((c+d (x^n)))^q)dx+f∫(x^n)(((a+b (x^n)))^p)(((c+d (x^n)))^q)dx

Program code:

Int[(a_+b_.*x_^n_)^p_.*(c_+d_.*x_^n_)^q_.*(e_+f_.*x_^n_),x_Symbol] :=
  e*Int[(a+b*x^n)^p*(c+d*x^n)^q,x] + f*Int[x^n*(a+b*x^n)^p*(c+d*x^n)^q,x] /;
FreeQ[{a,b,c,d,e,f,n,p,q},x]

2.  ∫(((a+b (x^n)))^p) (((c+d (x^n)))^q) (((e+f (x^n)))^r)dx  when p∈(SuperMinus[ℤ])

1.  ∫(((((c+d (x^2)))^q) (((e+f (x^2)))^r))/(a+b (x^2)))dx

1:  ∫(1/((a+b (x^2)) (c+d (x^2)) (Sqrt[e+f (x^2)])))dx

Derivation: Algebraic expansion

Basis: (1/((a+b z) (c+d z)))==(b/((b c-a d) (a+b z)))-(d/((b c-a d) (c+d z)))

Rule 1.1.3.5.2.1.1:

∫(1/((a+b (x^2)) (c+d (x^2)) (Sqrt[e+f (x^2)])))dx  ⟶  (b/(b c-a d))∫(1/((a+b (x^2)) (Sqrt[e+f (x^2)])))dx-(d/(b c-a d))∫(1/((c+d (x^2)) (Sqrt[e+f (x^2)])))dx

Program code:

Int[1/((a_+b_.*x_^2)*(c_+d_.*x_^2)*Sqrt[e_+f_.*x_^2]),x_Symbol] :=
  b/(b*c-a*d)*Int[1/((a+b*x^2)*Sqrt[e+f*x^2]),x] - 
  d/(b*c-a*d)*Int[1/((c+d*x^2)*Sqrt[e+f*x^2]),x] /;
FreeQ[{a,b,c,d,e,f},x]

Int[1/(x_^2*(c_+d_.*x_^2)*Sqrt[e_+f_.*x_^2]),x_Symbol] :=
  1/c*Int[1/(x^2*Sqrt[e+f*x^2]),x] - 
  d/c*Int[1/((c+d*x^2)*Sqrt[e+f*x^2]),x] /;
FreeQ[{c,d,e,f},x] && NeQ[d*e-c*f,0]

2:  ∫(((Sqrt[c+d (x^2)]) (Sqrt[e+f (x^2)]))/(a+b (x^2)))dx

Derivation: Algebraic expansion

Basis: ((Sqrt[c+d z])/(a+b z))==(d/(b (Sqrt[c+d z])))+((b c-a d)/(b (a+b z) (Sqrt[c+d z])))

Rule 1.1.3.5.2.1.2:

∫(((Sqrt[c+d (x^2)]) (Sqrt[e+f (x^2)]))/(a+b (x^2)))dx  ⟶  (d/b)∫((Sqrt[e+f (x^2)])/(Sqrt[c+d (x^2)]))dx+((b c-a d)/b)∫((Sqrt[e+f (x^2)])/((a+b (x^2)) (Sqrt[c+d (x^2)])))dx

Program code:

Int[Sqrt[c_+d_.*x_^2]*Sqrt[e_+f_.*x_^2]/(a_+b_.*x_^2),x_Symbol] :=
  d/b*Int[Sqrt[e+f*x^2]/Sqrt[c+d*x^2],x] + (b*c-a*d)/b*Int[Sqrt[e+f*x^2]/((a+b*x^2)*Sqrt[c+d*x^2]),x] /;
FreeQ[{a,b,c,d,e,f},x] && GtQ[d/c,0] && GtQ[f/e,0] && Not[SimplerSqrtQ[d/c,f/e]]

Int[Sqrt[c_+d_.*x_^2]*Sqrt[e_+f_.*x_^2]/(a_+b_.*x_^2),x_Symbol] :=
  d/b*Int[Sqrt[e+f*x^2]/Sqrt[c+d*x^2],x] + (b*c-a*d)/b*Int[Sqrt[e+f*x^2]/((a+b*x^2)*Sqrt[c+d*x^2]),x] /;
FreeQ[{a,b,c,d,e,f},x] && Not[SimplerSqrtQ[-f/e,-d/c]]

3.  ∫(1/((a+b (x^2))(Sqrt[c+d (x^2)])(Sqrt[e+f (x^2)])))dx

1:  ∫(1/((a+b (x^2))(Sqrt[c+d (x^2)])(Sqrt[e+f (x^2)])))dx  when (d/c)>0 ∧ (f/e)>0

Derivation: Algebraic expansion

Basis: (1/((a+b (x^2)) (Sqrt[e+f (x^2)])))==-(f/((b e-a f) (Sqrt[e+f (x^2)])))+((b (Sqrt[e+f (x^2)]))/((b e-a f) (a+b (x^2))))

Rule 1.1.3.5.2.1.3.1: If (d/c)>0 ∧ (f/e)>0, then

∫(1/((a+b (x^2))(Sqrt[c+d (x^2)])(Sqrt[e+f (x^2)])))dx  ⟶  -(f/(b e-a f)) ∫(1/((Sqrt[c+d (x^2)]) (Sqrt[e+f (x^2)])))dx+(b/(b e-a f)) ∫((Sqrt[e+f (x^2)])/((a+b (x^2)) (Sqrt[c+d (x^2)])))dx

Program code:

Int[1/((a_+b_.*x_^2)*Sqrt[c_+d_.*x_^2]*Sqrt[e_+f_.*x_^2]),x_Symbol] :=
  -f/(b*e-a*f)*Int[1/(Sqrt[c+d*x^2]*Sqrt[e+f*x^2]),x] + 
  b/(b*e-a*f)*Int[Sqrt[e+f*x^2]/((a+b*x^2)*Sqrt[c+d*x^2]),x] /;
FreeQ[{a,b,c,d,e,f},x] && GtQ[d/c,0] && GtQ[f/e,0] && Not[SimplerSqrtQ[d/c,f/e]]

2.  ∫(1/((a+b (x^2))(Sqrt[c+d (x^2)])(Sqrt[e+f (x^2)])))dx  when (d/c)≯0

1:  ∫(1/((a+b (x^2))(Sqrt[c+d (x^2)])(Sqrt[e+f (x^2)])))dx  when (d/c)≯0 ∧ c>0 ∧ e>0

Rule 1.1.3.5.2.1.3.2.1: If  (d/c)≯0 ∧ c>0 ∧ e>0, then

∫(1/((a+b (x^2))(Sqrt[c+d (x^2)])(Sqrt[e+f (x^2)])))dx  ⟶  (1/(a  (Sqrt[c])(Sqrt[e])(Sqrt[-(d/c)])))EllipticPi[((b c)/(a d)),ArcSin[(Sqrt[-(d/c)]) x],((c f)/(d e))]

Program code:

Int[1/((a_+b_.*x_^2)*Sqrt[c_+d_.*x_^2]*Sqrt[e_+f_.*x_^2]),x_Symbol] :=
  1/(a*Sqrt[c]*Sqrt[e]*Rt[-d/c,2])*EllipticPi[b*c/(a*d), ArcSin[Rt[-d/c,2]*x], c*f/(d*e)] /;
FreeQ[{a,b,c,d,e,f},x] && Not[GtQ[d/c,0]] && GtQ[c,0] && GtQ[e,0] && Not[Not[GtQ[f/e,0]] && SimplerSqrtQ[-f/e,-d/c]]

2:  ∫(1/((a+b (x^2))(Sqrt[c+d (x^2)])(Sqrt[e+f (x^2)])))dx  when (d/c)≯0 ∧ c≯0

Derivation: Piecewise constant extraction

Basis: (∂_x)((Sqrt[1+(d/c) (x^2)])/(Sqrt[c+d (x^2)]))==0

Rule 1.1.3.5.2.1.3.2.2: If (d/c)≯0 ∧ c≯0, then

∫(1/((a+b (x^2))(Sqrt[c+d (x^2)])(Sqrt[e+f (x^2)])))dx  ⟶  ((Sqrt[1+(d/c) (x^2)])/(Sqrt[c+d (x^2)]))∫(1/((a+b (x^2))(Sqrt[1+(d/c) (x^2)])(Sqrt[e+f (x^2)])))dx

Program code:

Int[1/((a_+b_.*x_^2)*Sqrt[c_+d_.*x_^2]*Sqrt[e_+f_.*x_^2]),x_Symbol] :=
  Sqrt[1+d/c*x^2]/Sqrt[c+d*x^2]*Int[1/((a+b*x^2)*Sqrt[1+d/c*x^2]*Sqrt[e+f*x^2]),x] /;
FreeQ[{a,b,c,d,e,f},x] && Not[GtQ[c,0]]

4.  ∫((Sqrt[c+d (x^2)])/((a+b (x^2)) (Sqrt[e+f (x^2)])))dx

1:  ∫((Sqrt[c+d (x^2)])/((a+b (x^2)) (Sqrt[e+f (x^2)])))dx  when (d/c)>0

Derivation: Piecewise constant extraction

Basis: (∂_x)(((Sqrt[c+d (x^2)]) (Sqrt[((c (e+f (x^2)))/(e (c+d (x^2))))]))/(Sqrt[e+f (x^2)]))==0

Rule 1.1.3.5.2.1.4.1: If (d/c)>0, then

∫((Sqrt[c+d (x^2)])/((a+b (x^2)) (Sqrt[e+f (x^2)])))dx  ⟶  ((c (Sqrt[e+f (x^2)]))/(e (Sqrt[c+d (x^2)]) (Sqrt[((c (e+f (x^2)))/(e (c+d (x^2))))]))) ∫(1/((a+b (x^2)) (Sqrt[((c (e+f (x^2)))/(e (c+d (x^2))))])))dx  ⟶  ((c (Sqrt[e+f (x^2)]))/(a e (Sqrt[(d/c)]) (Sqrt[c+d (x^2)]) (Sqrt[((c (e+f (x^2)))/(e (c+d (x^2))))]))) EllipticPi[1-((b c)/(a d)),ArcTan[(Sqrt[(d/c)]) x],1-((c f)/(d e))]

∫((Sqrt[c+d (x^2)])/((a+b (x^2)) (Sqrt[e+f (x^2)])))dx  ⟶  (((Sqrt[c+d (x^2)]) (Sqrt[((c (e+f (x^2)))/(e (c+d (x^2))))]))/(Sqrt[e+f (x^2)])) ∫(1/((a+b (x^2)) (Sqrt[((c (e+f (x^2)))/(e (c+d (x^2))))])))dx  ⟶  (((Sqrt[c+d (x^2)]) (Sqrt[((c (e+f (x^2)))/(e (c+d (x^2))))]))/(a (Sqrt[(d/c)]) (Sqrt[e+f (x^2)]))) EllipticPi[1-((b c)/(a d)),ArcTan[(Sqrt[(d/c)]) x],1-((c f)/(d e))]

Program code:

Int[Sqrt[c_+d_.*x_^2]/((a_+b_.*x_^2)*Sqrt[e_+f_.*x_^2]),x_Symbol] :=
  c*Sqrt[e+f*x^2]/(a*e*Rt[d/c,2]*Sqrt[c+d*x^2]*Sqrt[c*(e+f*x^2)/(e*(c+d*x^2))])*
    EllipticPi[1-b*c/(a*d),ArcTan[Rt[d/c,2]*x],1-c*f/(d*e)] /;
FreeQ[{a,b,c,d,e,f},x] && PosQ[d/c]

(* Int[Sqrt[c_+d_.*x_^2]/((a_+b_.*x_^2)*Sqrt[e_+f_.*x_^2]),x_Symbol] :=
  Sqrt[c+d*x^2]*Sqrt[c*(e+f*x^2)/(e*(c+d*x^2))]/(a*Rt[d/c,2]*Sqrt[e+f*x^2])*
    EllipticPi[1-b*c/(a*d),ArcTan[Rt[d/c,2]*x],1-c*f/(d*e)] /;
FreeQ[{a,b,c,d,e,f},x] && PosQ[d/c] *)

2:  ∫((Sqrt[c+d (x^2)])/((a+b (x^2)) (Sqrt[e+f (x^2)])))dx  when (d/c)≯0

Derivation: Algebraic expansion

Basis: ((Sqrt[c+d (x^2)])/(a+b (x^2)))==(d/(b (Sqrt[c+d (x^2)])))+((b c-a d)/(b (a+b (x^2)) (Sqrt[c+d (x^2)])))

Rule 1.1.3.5.2.1.4.2: If (d/c)≯0, then

∫((Sqrt[c+d (x^2)])/((a+b (x^2)) (Sqrt[e+f (x^2)])))dx  ⟶  (d/b)∫(1/((Sqrt[c+d (x^2)]) (Sqrt[e+f (x^2)])))dx+((b c-a d)/b)∫(1/((a+b (x^2)) (Sqrt[c+d (x^2)]) (Sqrt[e+f (x^2)])))dx

Program code:

Int[Sqrt[c_+d_.*x_^2]/((a_+b_.*x_^2)*Sqrt[e_+f_.*x_^2]),x_Symbol] :=
  d/b*Int[1/(Sqrt[c+d*x^2]*Sqrt[e+f*x^2]),x] + 
  (b*c-a*d)/b*Int[1/((a+b*x^2)*Sqrt[c+d*x^2]*Sqrt[e+f*x^2]),x] /;
FreeQ[{a,b,c,d,e,f},x] && NegQ[d/c]

5.  ∫(((((c+d (x^2)))^q) (((e+f (x^2)))^r))/(a+b (x^2)))dx  when q>0

1:  ∫((Sqrt[e+f (x^2)])/((a+b (x^2)) (((c+d (x^2)))^(3/2))))dx  when (d/c)>0 ∧ (f/e)>0

Derivation: Algebraic expansion

Basis: (1/((a+b (x^2)) (((c+d (x^2)))^(3/2))))==(b/((b c-a d) (a+b (x^2)) (Sqrt[c+d (x^2)])))-(d/((b c-a d) (((c+d (x^2)))^(3/2))))

Rule 1.1.3.5.2.1.5.1: If  (d/c)>0 ∧ (f/e)>0, then

∫((Sqrt[e+f (x^2)])/((a+b (x^2)) (((c+d (x^2)))^(3/2))))dx  ⟶  (b/(b c-a d))∫((Sqrt[e+f (x^2)])/((a+b (x^2)) (Sqrt[c+d (x^2)])))dx-(d/(b c-a d))∫((Sqrt[e+f (x^2)])/(((c+d (x^2)))^(3/2)))dx

Program code:

Int[Sqrt[e_+f_.*x_^2]/((a_+b_.*x_^2)*(c_+d_.*x_^2)^(3/2)),x_Symbol] :=
  b/(b*c-a*d)*Int[Sqrt[e+f*x^2]/((a+b*x^2)*Sqrt[c+d*x^2]),x] - 
  d/(b*c-a*d)*Int[Sqrt[e+f*x^2]/(c+d*x^2)^(3/2),x] /;
FreeQ[{a,b,c,d,e,f},x] && PosQ[d/c] && PosQ[f/e]

2:  ∫((((e+f (x^2)))^(3/2))/((a+b (x^2)) (((c+d (x^2)))^(3/2))))dx  when (d/c)>0 ∧ (f/e)>0

Derivation: Algebraic expansion

Basis: ((e+f (x^2))/((a+b (x^2)) (c+d (x^2))))==((b e-a f)/((b c-a d) (a+b (x^2))))-((d e-c f)/((b c-a d) (c+d (x^2))))

Rule 1.1.3.5.2.1.5.2: If  (d/c)>0 ∧ (f/e)>0, then

∫((((e+f (x^2)))^(3/2))/((a+b (x^2)) (((c+d (x^2)))^(3/2))))dx  ⟶  ((b e-a f)/(b c-a d))∫((Sqrt[e+f (x^2)])/((a+b (x^2)) (Sqrt[c+d (x^2)])))dx-((d e-c f)/(b c-a d))∫((Sqrt[e+f (x^2)])/(((c+d (x^2)))^(3/2)))dx

Program code:

Int[(e_+f_.*x_^2)^(3/2)/((a_+b_.*x_^2)*(c_+d_.*x_^2)^(3/2)),x_Symbol] :=
  (b*e-a*f)/(b*c-a*d)*Int[Sqrt[e+f*x^2]/((a+b*x^2)*Sqrt[c+d*x^2]),x] - 
  (d*e-c*f)/(b*c-a*d)*Int[Sqrt[e+f*x^2]/(c+d*x^2)^(3/2),x] /;
FreeQ[{a,b,c,d,e,f},x] && PosQ[d/c] && PosQ[f/e]

3:  ∫(((((c+d (x^2)))^(3/2)) (Sqrt[e+f (x^2)]))/(a+b (x^2)))dx  when (d/c)>0 ∧ (f/e)>0

Derivation: Algebraic expansion

Basis: ((((c+d (x^2)))^(3/2))/(a+b (x^2)))==((((b c-a d))^2)/((b^2) (a+b (x^2)) (Sqrt[c+d (x^2)])))+((d (2 b c-a d+b d (x^2)))/((b^2) (Sqrt[c+d (x^2)])))

Rule 1.1.3.5.2.1.5.3: If (d/c)>0 ∧ (f/e)>0, then

∫(((((c+d (x^2)))^(3/2)) (Sqrt[e+f (x^2)]))/(a+b (x^2)))dx  ⟶  ((((b c-a d))^2)/(b^2))∫((Sqrt[e+f (x^2)])/((a+b (x^2)) (Sqrt[c+d (x^2)])))dx+(d/(b^2))∫(((2 b c-a d+b d (x^2)) (Sqrt[e+f (x^2)]))/(Sqrt[c+d (x^2)]))dx

Program code:

Int[(c_+d_.*x_^2)^(3/2)*Sqrt[e_+f_.*x_^2]/(a_+b_.*x_^2),x_Symbol] :=
  (b*c-a*d)^2/b^2*Int[Sqrt[e+f*x^2]/((a+b*x^2)*Sqrt[c+d*x^2]),x] + 
  d/b^2*Int[(2*b*c-a*d+b*d*x^2)*Sqrt[e+f*x^2]/Sqrt[c+d*x^2],x] /;
FreeQ[{a,b,c,d,e,f},x] && PosQ[d/c] && PosQ[f/e]

4:  ∫(((((c+d (x^2)))^q) (((e+f (x^2)))^r))/(a+b (x^2)))dx  when q<-1 ∧ r>1

Derivation: Algebraic expansion

Basis: (((((c+d (x^2)))^q) (e+f (x^2)))/(a+b (x^2)))==((b (b e-a f) (((c+d (x^2)))^(q+2)))/((((b c-a d))^2) (a+b (x^2))))-(((((c+d (x^2)))^q) (2 b c d e-a (d^2) e-b (c^2) f+(d^2) (b e-a f) (x^2)))/(((b c-a d))^2))

Rule 1.1.3.5.2.1.5.4: If  q<-1 ∧ r>1, then

∫(((((c+d (x^2)))^q) (((e+f (x^2)))^r))/(a+b (x^2)))dx  ⟶  
((b (b e-a f) )/(((b c-a d))^2))∫(((((c+d (x^2)))^(q+2)) (((e+f (x^2)))^(r-1)))/(a+b (x^2)))dx-(1/(((b c-a d))^2))∫(((c+d (x^2)))^q) (((e+f (x^2)))^(r-1)) (2 b c d e-a (d^2) e-b (c^2) f+(d^2) (b e-a f) (x^2))dx

Program code:

Int[(c_+d_.*x_^2)^q_*(e_+f_.*x_^2)^r_/(a_+b_.*x_^2),x_Symbol] :=
  b*(b*e-a*f)/(b*c-a*d)^2*Int[(c+d*x^2)^(q+2)*(e+f*x^2)^(r-1)/(a+b*x^2),x] - 
  1/(b*c-a*d)^2*Int[(c+d*x^2)^q*(e+f*x^2)^(r-1)*(2*b*c*d*e-a*d^2*e-b*c^2*f+d^2*(b*e-a*f)*x^2),x] /;
FreeQ[{a,b,c,d,e,f},x] && LtQ[q,-1] && GtQ[r,1]

5:  ∫(((((c+d (x^2)))^q) (((e+f (x^2)))^r))/(a+b (x^2)))dx  when q>1

Derivation: Algebraic expansion

Basis: c+d z==((d (a+b z))/b)+((b c-a d)/b)

Rule 1.1.3.5.2.1.5.5: If  q>1, then

∫(((((c+d (x^2)))^q) (((e+f (x^2)))^r))/(a+b (x^2)))dx  ⟶  (d/b)∫(((c+d (x^2)))^(q-1)) (((e+f (x^2)))^r)dx+((b c-a d)/b)∫(((((c+d (x^2)))^(q-1)) (((e+f (x^2)))^r))/(a+b (x^2)))dx

Program code:

Int[(c_+d_.*x_^2)^q_*(e_+f_.*x_^2)^r_/(a_+b_.*x_^2),x_Symbol] :=
  d/b*Int[(c+d*x^2)^(q-1)*(e+f*x^2)^r,x] + 
  (b*c-a*d)/b*Int[(c+d*x^2)^(q-1)*(e+f*x^2)^r/(a+b*x^2),x] /;
FreeQ[{a,b,c,d,e,f,r},x] && GtQ[q,1]

6.  ∫(((((c+d (x^2)))^q) (((e+f (x^2)))^r))/(a+b (x^2)))dx  when q≤-1

1:  ∫(((((c+d (x^2)))^q) (((e+f (x^2)))^r))/(a+b (x^2)))dx  when q<-1

Derivation: Algebraic expansion

Basis: ((((c+d (x^2)))^q)/(a+b (x^2)))==(((b^2) (((c+d (x^2)))^(q+2)))/((((b c-a d))^2) (a+b (x^2))))-((d (2 b c-a d+b d (x^2)) (((c+d (x^2)))^q))/(((b c-a d))^2))

Rule 1.1.3.5.2.1.6.1: If  q<-1, then

∫(((((c+d (x^2)))^q) (((e+f (x^2)))^r))/(a+b (x^2)))dx  ⟶  ((b^2)/(((b c-a d))^2))∫(((((c+d (x^2)))^(q+2)) (((e+f (x^2)))^r))/(a+b (x^2)))dx-(d/(((b c-a d))^2))∫(((c+d (x^2)))^q) (((e+f (x^2)))^r) (2 b c-a d+b d (x^2))dx

Program code:

Int[(c_+d_.*x_^2)^q_*(e_+f_.*x_^2)^r_/(a_+b_.*x_^2),x_Symbol] :=
  b^2/(b*c-a*d)^2*Int[(c+d*x^2)^(q+2)*(e+f*x^2)^r/(a+b*x^2),x] - 
  d/(b*c-a*d)^2*Int[(c+d*x^2)^q*(e+f*x^2)^r*(2*b*c-a*d+b*d*x^2),x] /;
FreeQ[{a,b,c,d,e,f,r},x] && LtQ[q,-1]

2:  ∫(((((c+d (x^2)))^q) (((e+f (x^2)))^r))/(a+b (x^2)))dx  when q≤-1

Derivation: Algebraic expansion

Basis: 1==-((d (a+b z))/(b c-a d))+((b (c+d z))/(b c-a d))

Rule 1.1.3.5.2.1.6.2: If  q≤-1, then

∫(((((c+d (x^2)))^q) (((e+f (x^2)))^r))/(a+b (x^2)))dx  ⟶  -(d/(b c-a d))∫(((c+d (x^2)))^q) (((e+f (x^2)))^r)dx+(b/(b c-a d))∫(((((c+d (x^2)))^(q+1)) (((e+f (x^2)))^r))/(a+b (x^2)))dx

Program code:

Int[(c_+d_.*x_^2)^q_*(e_+f_.*x_^2)^r_/(a_+b_.*x_^2),x_Symbol] :=
  -d/(b*c-a*d)*Int[(c+d*x^2)^q*(e+f*x^2)^r,x] + 
  b/(b*c-a*d)*Int[(c+d*x^2)^(q+1)*(e+f*x^2)^r/(a+b*x^2),x] /;
FreeQ[{a,b,c,d,e,f,r},x] && LeQ[q,-1]

2.  ∫(((((c+d (x^2)))^p)(((e+f (x^2)))^p))/(((a+b (x^2)))^2))dx  when -1≤q<0 ∧ -1≤r<0

1:  ∫(((Sqrt[c+d (x^2)]) (Sqrt[e+f (x^2)]))/(((a+b (x^2)))^2))dx

Rule 1.1.3.5.2.2.1:

∫(((Sqrt[c+d (x^2)]) (Sqrt[e+f (x^2)]))/(((a+b (x^2)))^2))dx  ⟶  
((x (Sqrt[c+d (x^2)]) (Sqrt[e+f (x^2)]))/(2 a (a+b (x^2))))+((d f)/(2 a (b^2)))∫((a-b (x^2))/((Sqrt[c+d (x^2)]) (Sqrt[e+f (x^2)])))dx+(((b^2) c e-(a^2) d f)/(2 a (b^2)))∫(1/((a+b (x^2)) (Sqrt[c+d (x^2)]) (Sqrt[e+f (x^2)])))dx

Program code:

Int[Sqrt[c_+d_.*x_^2]*Sqrt[e_+f_.*x_^2]/(a_+b_.*x_^2)^2,x_Symbol] :=
  x*Sqrt[c+d*x^2]*Sqrt[e+f*x^2]/(2*a*(a+b*x^2)) + 
  d*f/(2*a*b^2)*Int[(a-b*x^2)/(Sqrt[c+d*x^2]*Sqrt[e+f*x^2]),x] + 
  (b^2*c*e-a^2*d*f)/(2*a*b^2)*Int[1/((a+b*x^2)*Sqrt[c+d*x^2]*Sqrt[e+f*x^2]),x] /;
FreeQ[{a,b,c,d,e,f},x]

2:  ∫(1/((((a+b (x^2)))^2) (Sqrt[c+d (x^2)]) (Sqrt[e+f (x^2)])))dx

Rule 1.1.3.5.2.2.2:

∫(1/((((a+b (x^2)))^2) (Sqrt[c+d (x^2)]) (Sqrt[e+f (x^2)])))dx  ⟶  
(((b^2) x (Sqrt[c+d (x^2)]) (Sqrt[e+f (x^2)]))/(2 a (b c-a d) (b e-a f) (a+b (x^2))))-((d f)/(2 a (b c-a d) (b e-a f)))∫((a+b (x^2))/((Sqrt[c+d (x^2)]) (Sqrt[e+f (x^2)])))dx+(((b^2) c e+3 (a^2) d f-2 a b (d e+c f))/(2 a (b c-a d) (b e-a f)))∫(1/((a+b (x^2)) (Sqrt[c+d (x^2)]) (Sqrt[e+f (x^2)])))dx

Program code:

Int[1/((a_+b_.*x_^2)^2*Sqrt[c_+d_.*x_^2]*Sqrt[e_+f_.*x_^2]),x_Symbol] :=
  b^2*x*Sqrt[c+d*x^2]*Sqrt[e+f*x^2]/(2*a*(b*c-a*d)*(b*e-a*f)*(a+b*x^2)) - 
  d*f/(2*a*(b*c-a*d)*(b*e-a*f))*Int[(a+b*x^2)/(Sqrt[c+d*x^2]*Sqrt[e+f*x^2]),x] + 
  (b^2*c*e+3*a^2*d*f-2*a*b*(d*e+c*f))/(2*a*(b*c-a*d)*(b*e-a*f))*Int[1/((a+b*x^2)*Sqrt[c+d*x^2]*Sqrt[e+f*x^2]),x] /;
FreeQ[{a,b,c,d,e,f},x]

3:  ∫(((a+b (x^n)))^p) (((c+d (x^n)))^q) (((e+f (x^n)))^r)dx  when p∈(SuperMinus[ℤ])∧ q>0

Derivation: Algebraic expansion

Basis: c+d z==((d (a+b z))/b)+((b c-a d)/b)

Rule 1.1.3.5.2.4: If  p∈(SuperMinus[ℤ])∧ q>0, then

∫(((a+b (x^n)))^p) (((c+d (x^n)))^q) (((e+f (x^n)))^r)dx  ⟶  
(d/b)∫(((a+b (x^n)))^(p+1)) (((c+d (x^n)))^(q-1)) (((e+f (x^n)))^r)dx+((b c-a d)/b)∫(((a+b (x^n)))^p) (((c+d (x^n)))^(q-1)) (((e+f (x^n)))^r)dx

Program code:

Int[(a_+b_.*x_^n_)^p_*(c_+d_.*x_^n_)^q_*(e_+f_.*x_^n_)^r_,x_Symbol] :=
  d/b*Int[(a+b*x^n)^(p+1)*(c+d*x^n)^(q-1)*(e+f*x^n)^r,x] + 
  (b*c-a*d)/b*Int[(a+b*x^n)^p*(c+d*x^n)^(q-1)*(e+f*x^n)^r,x] /;
FreeQ[{a,b,c,d,e,f,n,r},x] && ILtQ[p,0] && GtQ[q,0]

4:  ∫(((a+b (x^n)))^p) (((c+d (x^n)))^q) (((e+f (x^n)))^r)dx  when p∈(SuperMinus[ℤ])∧ q≤-1

Derivation: Algebraic expansion

Basis: 1==-((d (a+b z))/(b c-a d))+((b (c+d z))/(b c-a d))

Rule 1.1.3.5.2.5: If  p∈(SuperMinus[ℤ])∧ q≤-1, then

∫(((a+b (x^n)))^p) (((c+d (x^n)))^q) (((e+f (x^n)))^r)dx  ⟶  
(b/(b c-a d))∫(((a+b (x^n)))^p) (((c+d (x^n)))^(q+1)) (((e+f (x^n)))^r)dx-(d/(b c-a d))∫(((a+b (x^n)))^(p+1)) (((c+d (x^n)))^q) (((e+f (x^n)))^r)dx

Program code:

Int[(a_+b_.*x_^n_)^p_*(c_+d_.*x_^n_)^q_*(e_+f_.*x_^n_)^r_,x_Symbol] :=
  b/(b*c-a*d)*Int[(a+b*x^n)^p*(c+d*x^n)^(q+1)*(e+f*x^n)^r,x] - 
  d/(b*c-a*d)*Int[(a+b*x^n)^(p+1)*(c+d*x^n)^q*(e+f*x^n)^r,x] /;
FreeQ[{a,b,c,d,e,f,n,q},x] && ILtQ[p,0] && LeQ[q,-1]

3.  ∫(((a+b (x^2)))^p) (((c+d (x^2)))^q) (((e+f (x^2)))^r)dx

1:  ∫(1/((Sqrt[a+b (x^2)]) (Sqrt[c+d (x^2)]) (Sqrt[e+f (x^2)])))dx

Derivation: Piecewise constant extraction and integration by substitution

Basis: (∂_x)(((Sqrt[c+d (x^2)]) (Sqrt[((a (e+f (x^2)))/(e (a+b (x^2))))]))/((Sqrt[e+f (x^2)]) (Sqrt[((a (c+d (x^2)))/(c (a+b (x^2))))])))==0

Basis: (1/((((a+b (x^2)))^(3/2)) (Sqrt[((a (c+d (x^2)))/(c (a+b (x^2))))]) (Sqrt[((a (e+f (x^2)))/(e (a+b (x^2))))])))==(1/a) Subst[(1/((Sqrt[1-(((b c-a d) (x^2))/c)]) (Sqrt[1-(((b e-a f) (x^2))/e)]))),x,(x/(Sqrt[a+b (x^2)]))] (∂_x)(x/(Sqrt[a+b (x^2)]))

Rule 1.1.3.5.2.3.1:

∫(1/((Sqrt[a+b (x^2)]) (Sqrt[c+d (x^2)]) (Sqrt[e+f (x^2)])))dx  ⟶  ((a (Sqrt[c+d (x^2)]) (Sqrt[((a (e+f (x^2)))/(e (a+b (x^2))))]))/(c (Sqrt[e+f (x^2)]) (Sqrt[((a (c+d (x^2)))/(c (a+b (x^2))))]))) ∫(1/((((a+b (x^2)))^(3/2)) (Sqrt[((a (c+d (x^2)))/(c (a+b (x^2))))]) (Sqrt[((a (e+f (x^2)))/(e (a+b (x^2))))])))dx
  ⟶  (((Sqrt[c+d (x^2)]) (Sqrt[((a (e+f (x^2)))/(e (a+b (x^2))))]))/(c (Sqrt[e+f (x^2)]) (Sqrt[((a (c+d (x^2)))/(c (a+b (x^2))))]))) Subst[∫(1/((Sqrt[1-(((b c-a d) (x^2))/c)]) (Sqrt[1-(((b e-a f) (x^2))/e)])))dx,x,(x/(Sqrt[a+b (x^2)]))]

Program code:

Int[1/(Sqrt[a_+b_.*x_^2]*Sqrt[c_+d_.*x_^2]*Sqrt[e_+f_.*x_^2]),x_Symbol] :=
  Sqrt[c+d*x^2]*Sqrt[a*(e+f*x^2)/(e*(a+b*x^2))]/(c*Sqrt[e+f*x^2]*Sqrt[a*(c+d*x^2)/(c*(a+b*x^2))])*
    Subst[Int[1/(Sqrt[1-(b*c-a*d)*x^2/c]*Sqrt[1-(b*e-a*f)*x^2/e]),x],x,x/Sqrt[a+b*x^2]] /;
FreeQ[{a,b,c,d,e,f},x]

2:  ∫((Sqrt[a+b (x^2)])/((Sqrt[c+d (x^2)]) (Sqrt[e+f (x^2)])))dx

Derivation: Piecewise constant extraction and integration by substitution

Basis: (∂_x)(((Sqrt[c+d (x^2)]) (Sqrt[((a (e+f (x^2)))/(e (a+b (x^2))))]))/((Sqrt[e+f (x^2)]) (Sqrt[((a (c+d (x^2)))/(c (a+b (x^2))))])))==0

Basis: (1/((Sqrt[a+b (x^2)]) (Sqrt[((a (c+d (x^2)))/(c (a+b (x^2))))]) (Sqrt[((a (e+f (x^2)))/(e (a+b (x^2))))])))==Subst[(1/((1-b (x^2)) (Sqrt[1-(((b c-a d) (x^2))/c)]) (Sqrt[1-(((b e-a f) (x^2))/e)]))),x,(x/(Sqrt[a+b (x^2)]))] (∂_x)(x/(Sqrt[a+b (x^2)]))

Rule 1.1.3.5.2.3.2:

∫((Sqrt[a+b (x^2)])/((Sqrt[c+d (x^2)]) (Sqrt[e+f (x^2)])))dx  ⟶  ((a (Sqrt[c+d (x^2)]) (Sqrt[((a (e+f (x^2)))/(e (a+b (x^2))))]))/(c (Sqrt[e+f (x^2)]) (Sqrt[((a (c+d (x^2)))/(c (a+b (x^2))))]))) ∫(1/((Sqrt[a+b (x^2)]) (Sqrt[((a (c+d (x^2)))/(c (a+b (x^2))))]) (Sqrt[((a (e+f (x^2)))/(e (a+b (x^2))))])))dx

  ⟶  ((a  (Sqrt[c+d (x^2)]) (Sqrt[((a (e+f (x^2)))/(e (a+b (x^2))))]))/(c (Sqrt[e+f (x^2)]) (Sqrt[((a (c+d (x^2)))/(c (a+b (x^2))))]))) Subst[∫(1/((1-b (x^2)) (Sqrt[1-(((b c-a d) (x^2))/c)]) (Sqrt[1-(((b e-a f) (x^2))/e)])))dx,x,(x/(Sqrt[a+b (x^2)]))]

Program code:

Int[Sqrt[a_+b_.*x_^2]/(Sqrt[c_+d_.*x_^2]*Sqrt[e_+f_.*x_^2]),x_Symbol] :=
  a*Sqrt[c+d*x^2]*Sqrt[a*(e+f*x^2)/(e*(a+b*x^2))]/(c*Sqrt[e+f*x^2]*Sqrt[a*(c+d*x^2)/(c*(a+b*x^2))])*
    Subst[Int[1/((1-b*x^2)*Sqrt[1-(b*c-a*d)*x^2/c]*Sqrt[1-(b*e-a*f)*x^2/e]),x],x,x/Sqrt[a+b*x^2]] /;
FreeQ[{a,b,c,d,e,f},x]

3:  ∫((Sqrt[c+d (x^2)])/((((a+b (x^2)))^(3/2)) (Sqrt[e+f (x^2)])))dx

Derivation: Piecewise constant extraction and integration by substitution

Basis: (∂_x)(((Sqrt[c+d (x^2)]) (Sqrt[((a (e+f (x^2)))/(e (a+b (x^2))))]))/((Sqrt[e+f (x^2)]) (Sqrt[((a (c+d (x^2)))/(c (a+b (x^2))))])))==0

Basis: ((Sqrt[((a (c+d (x^2)))/(c (a+b (x^2))))])/((((a+b (x^2)))^(3/2)) (Sqrt[((a (e+f (x^2)))/(e (a+b (x^2))))])))==(1/a) Subst[((Sqrt[1-(((b c-a d) (x^2))/c)])/(Sqrt[1-(((b e-a f) (x^2))/e)])),x,(x/(Sqrt[a+b (x^2)]))] (∂_x)(x/(Sqrt[a+b (x^2)]))

Rule 1.1.3.5.2.3.3:

∫((Sqrt[c+d (x^2)])/((((a+b (x^2)))^(3/2)) (Sqrt[e+f (x^2)])))dx  ⟶  (((Sqrt[c+d (x^2)]) (Sqrt[((a (e+f (x^2)))/(e (a+b (x^2))))]))/((Sqrt[e+f (x^2)]) (Sqrt[((a (c+d (x^2)))/(c (a+b (x^2))))]))) ∫((Sqrt[((a (c+d (x^2)))/(c (a+b (x^2))))])/((((a+b (x^2)))^(3/2)) (Sqrt[((a (e+f (x^2)))/(e (a+b (x^2))))])))dx  ⟶  
(((Sqrt[c+d (x^2)]) (Sqrt[((a (e+f (x^2)))/(e (a+b (x^2))))]))/(a (Sqrt[e+f (x^2)]) (Sqrt[((a (c+d (x^2)))/(c (a+b (x^2))))]))) Subst[∫((Sqrt[1-(((b c-a d) (x^2))/c)])/(Sqrt[1-(((b e-a f) (x^2))/e)]))dx,x,(x/(Sqrt[a+b (x^2)]))]

Program code:

Int[Sqrt[c_+d_.*x_^2]/((a_+b_.*x_^2)^(3/2)*Sqrt[e_+f_.*x_^2]),x_Symbol] :=
  Sqrt[c+d*x^2]*Sqrt[a*(e+f*x^2)/(e*(a+b*x^2))]/(a*Sqrt[e+f*x^2]*Sqrt[a*(c+d*x^2)/(c*(a+b*x^2))])*
    Subst[Int[Sqrt[1-(b*c-a*d)*x^2/c]/Sqrt[1-(b*e-a*f)*x^2/e],x],x,x/Sqrt[a+b*x^2]] /;
FreeQ[{a,b,c,d,e,f},x]

4.  ∫(((Sqrt[a+b (x^2)]) (Sqrt[c+d (x^2)]))/(Sqrt[e+f (x^2)]))dx

1:  ∫(((Sqrt[a+b (x^2)]) (Sqrt[c+d (x^2)]))/(Sqrt[e+f (x^2)]))dx  when ((d e-c f)/c)>0

Rule 1.1.3.5.2.3.4.1: If ((d e-c f)/c)>0, then

∫(((Sqrt[a+b (x^2)]) (Sqrt[c+d (x^2)]))/(Sqrt[e+f (x^2)]))dx  ⟶  

((d x (Sqrt[a+b (x^2)]) (Sqrt[e+f (x^2)]))/(2 f (Sqrt[c+d (x^2)])))-((c (d e-c f))/(2 f)) ∫((Sqrt[a+b (x^2)])/((((c+d (x^2)))^(3/2)) (Sqrt[e+f (x^2)])))dx+
((b c (d e-c f))/(2 d f)) ∫(1/((Sqrt[a+b (x^2)]) (Sqrt[c+d (x^2)]) (Sqrt[e+f (x^2)])))dx-((b d e-b c f-a d f)/(2 d f)) ∫((Sqrt[c+d (x^2)])/((Sqrt[a+b (x^2)]) (Sqrt[e+f (x^2)])))dx

Program code:

Int[Sqrt[a_+b_.*x_^2]*Sqrt[c_+d_.*x_^2]/Sqrt[e_+f_.*x_^2],x_Symbol] :=
  d*x*Sqrt[a+b*x^2]*Sqrt[e+f*x^2]/(2*f*Sqrt[c+d*x^2]) - 
  c*(d*e-c*f)/(2*f)*Int[Sqrt[a+b*x^2]/((c+d*x^2)^(3/2)*Sqrt[e+f*x^2]),x] + 
  b*c*(d*e-c*f)/(2*d*f)*Int[1/(Sqrt[a+b*x^2]*Sqrt[c+d*x^2]*Sqrt[e+f*x^2]),x] - 
  (b*d*e-b*c*f-a*d*f)/(2*d*f)*Int[Sqrt[c+d*x^2]/(Sqrt[a+b*x^2]*Sqrt[e+f*x^2]),x] /;
FreeQ[{a,b,c,d,e,f},x] && PosQ[(d*e-c*f)/c]

2:  ∫(((Sqrt[a+b (x^2)]) (Sqrt[c+d (x^2)]))/(Sqrt[e+f (x^2)]))dx  when ((d e-c f)/c)≯0

Rule 1.1.3.5.2.3.4.2: If ((d e-c f)/c)≯0, then

∫(((Sqrt[a+b (x^2)]) (Sqrt[c+d (x^2)]))/(Sqrt[e+f (x^2)]))dx  ⟶  

((x (Sqrt[a+b (x^2)]) (Sqrt[c+d (x^2)]))/(2 (Sqrt[e+f (x^2)])))+((e (b e-a f))/(2 f)) ∫((Sqrt[c+d (x^2)])/((Sqrt[a+b (x^2)]) (((e+f (x^2)))^(3/2))))dx+
(((b e-a f) (d e-2 c f))/(2 (f^2))) ∫(1/((Sqrt[a+b (x^2)]) (Sqrt[c+d (x^2)]) (Sqrt[e+f (x^2)])))dx-((b d e-b c f-a d f)/(2 (f^2))) ∫((Sqrt[e+f (x^2)])/((Sqrt[a+b (x^2)]) (Sqrt[c+d (x^2)])))dx

Program code:

Int[Sqrt[a_+b_.*x_^2]*Sqrt[c_+d_.*x_^2]/Sqrt[e_+f_.*x_^2],x_Symbol] :=
  x*Sqrt[a+b*x^2]*Sqrt[c+d*x^2]/(2*Sqrt[e+f*x^2]) + 
  e*(b*e-a*f)/(2*f)*Int[Sqrt[c+d*x^2]/(Sqrt[a+b*x^2]*(e+f*x^2)^(3/2)),x] + 
  (b*e-a*f)*(d*e-2*c*f)/(2*f^2)*Int[1/(Sqrt[a+b*x^2]*Sqrt[c+d*x^2]*Sqrt[e+f*x^2]),x] - 
  (b*d*e-b*c*f-a*d*f)/(2*f^2)*Int[Sqrt[e+f*x^2]/(Sqrt[a+b*x^2]*Sqrt[c+d*x^2]),x] /;
FreeQ[{a,b,c,d,e,f},x] && NegQ[(d*e-c*f)/c]

5:  ∫(((Sqrt[a+b (x^2)]) (Sqrt[c+d (x^2)]))/(((e+f (x^2)))^(3/2)))dx

Derivation: Algebraic expansion

Basis: ((Sqrt[a+b (x^2)])/(((e+f (x^2)))^(3/2)))==(b/(f (Sqrt[a+b (x^2)]) (Sqrt[e+f (x^2)])))-((b e-a f)/(f (Sqrt[a+b (x^2)]) (((e+f (x^2)))^(3/2))))

Rule 1.1.3.5.2.3.5:

∫(((Sqrt[a+b (x^2)]) (Sqrt[c+d (x^2)]))/(((e+f (x^2)))^(3/2)))dx  ⟶  (b/f) ∫((Sqrt[c+d (x^2)])/((Sqrt[a+b (x^2)]) (Sqrt[e+f (x^2)])))dx-((b e-a f)/f) ∫((Sqrt[c+d (x^2)])/((Sqrt[a+b (x^2)]) (((e+f (x^2)))^(3/2))))dx

Program code:

Int[Sqrt[a_+b_.*x_^2]*Sqrt[c_+d_.*x_^2]/(e_+f_.*x_^2)^(3/2),x_Symbol] :=
  b/f*Int[Sqrt[c+d*x^2]/(Sqrt[a+b*x^2]*Sqrt[e+f*x^2]),x] - 
  (b*e-a*f)/f*Int[Sqrt[c+d*x^2]/(Sqrt[a+b*x^2]*(e+f*x^2)^(3/2)),x] /;
FreeQ[{a,b,c,d,e,f},x]

4:  ∫(((a+b (x^n)))^p) (((c+d (x^n)))^q) (((e+f (x^n)))^r)dx  when n∈(SuperPlus[ℤ])

Derivation: Algebraic expansion

Rule 1.1.3.5.3: If  n∈(SuperPlus[ℤ]), let u=ExpandIntegrand[(((a+b (x^n)))^p) (((c+d (x^n)))^q)(((e+f (x^n)))^r),x], if u is a sum, then

∫(((a+b (x^n)))^p) (((c+d (x^n)))^q)(((e+f (x^n)))^r)dx  ⟶  ∫udx

Program code:

Int[(a_+b_.*x_^n_)^p_*(c_+d_.*x_^n_)^q_*(e_+f_.*x_^n_)^r_,x_Symbol] :=
  With[{u=ExpandIntegrand[(a+b*x^n)^p*(c+d*x^n)^q*(e+f*x^n)^r,x]},
  Int[u,x] /;
 SumQ[u]] /;
FreeQ[{a,b,c,d,e,f,p,q,r},x] && IGtQ[n,0]

5:  ∫(((a+b (x^n)))^p) (((c+d (x^n)))^q) (((e+f (x^n)))^r)dx  when  n∈(SuperMinus[ℤ])

Derivation: Integration by substitution

Basis: F[x]==-Subst[((F[(x^(-1))] )/(x^2)),x,(1/x)](∂_x)(1/x)

Rule 1.1.3.5.4: If  n∈(SuperMinus[ℤ]), then

∫(((a+b (x^n)))^p) (((c+d (x^n)))^q) (((e+f (x^n)))^r)dx  ⟶  -Subst[∫(((((a+b (x^(-n))))^p) (((c+d (x^(-n))))^q) (((e+f (x^(-n))))^r))/(x^2))dx,x,(1/x)]

Program code:

Int[(a_+b_.*x_^n_)^p_*(c_+d_.*x_^n_)^q_*(e_+f_.*x_^n_)^r_,x_Symbol] :=
  -Subst[Int[(a+b*x^(-n))^p*(c+d*x^(-n))^q*(e+f*x^(-n))^r/x^2,x],x,1/x] /;
FreeQ[{a,b,c,d,e,f,p,q,r},x] && ILtQ[n,0]

U:  ∫(((a+b (x^n)))^p)(((c+d (x^n)))^q)(((e+f (x^n)))^r)dx

Rule 1.1.3.5.X:

∫(((a+b (x^n)))^p)(((c+d (x^n)))^q)(((e+f (x^n)))^r)dx  ⟶  ∫(((a+b (x^n)))^p)(((c+d (x^n)))^q)(((e+f (x^n)))^r)dx

Program code:

Int[(a_+b_.*x_^n_)^p_.*(c_+d_.*x_^n_)^q_.*(e_+f_.*x_^n_)^r_.,x_Symbol] :=
  Unintegrable[(a+b*x^n)^p*(c+d*x^n)^q*(e+f*x^n)^r,x] /;
FreeQ[{a,b,c,d,e,f,n,p,q,r},x]

S:  ∫(((a+b (u^n)))^p) (((c+d (u^n)))^q)(((e+f (u^n)))^r)dx  when  u==g+h x

Derivation: Integration by substitution

Rule 1.1.3.5.S: If  u==g+h x, then

∫(((a+b (u^n)))^p) (((c+d (u^n)))^q)(((e+f (u^n)))^r)dx  ⟶  (1/h)Subst[∫(((a+b (x^n)))^p) (((c+d (x^n)))^q)(((e+f (x^n)))^r)dx,x,u]

Program code:

Int[(a_.+b_.*u_^n_)^p_.*(c_.+d_.*v_^n_)^q_.*(e_.+f_.*w_^n_)^r_.,x_Symbol] :=
  1/Coefficient[u,x,1]*Subst[Int[(a+b*x^n)^p*(c+d*x^n)^q*(e+f*x^n)^r,x],x,u] /;
FreeQ[{a,b,c,d,e,f,p,n,q,r},x] && EqQ[u,v] && EqQ[u,w] && LinearQ[u,x] && NeQ[u,x]

6.  ∫(((a+b (x^n)))^p)(((c+d (x^(-n))))^q) (((e+f (x^n)))^r)dx

1:  ∫(((a+b (x^n)))^p) (((c+d (x^(-n))))^q) (((e+f (x^n)))^r)dx  when  q∈ℤ

Derivation: Algebraic normalization

Basis: If  q∈ℤ, then (((c+d (x^(-n))))^q)==((((d+c (x^n)))^q)/(x^(n q)))

Rule 1.1.3.5.5.1: If  q∈ℤ, then

∫(((a+b (x^n)))^p) (((c+d (x^(-n))))^q) (((e+f (x^n)))^r)dx  ⟶  ∫(((((a+b (x^n)))^p) (((d+c (x^n)))^q) (((e+f (x^n)))^r))/(x^(n q)))dx

Program code:

Int[(a_.+b_.*x_^n_.)^p_.*(c_+d_.*x_^mn_.)^q_.*(e_+f_.*x_^n_.)^r_.,x_Symbol] :=
  Int[(a+b*x^n)^p*(d+c*x^n)^q*(e+f*x^n)^r/x^(n*q),x] /;
FreeQ[{a,b,c,d,e,f,n,p,r},x] && EqQ[mn,-n] && IntegerQ[q]

2:  ∫(((a+b (x^n)))^p) (((c+d (x^(-n))))^q) (((e+f (x^n)))^r)dx  when  p∈ℤ ∧ r∈ℤ

Derivation: Algebraic normalization

Basis: If  p∈ℤ, then (((a+b (x^n)))^p)==(x^(n p)) (((b+a (x^(-n))))^p)

Rule 1.1.3.5.5.2: If  p∈ℤ ∧ r∈ℤ, then

∫(((a+b (x^n)))^p) (((c+d (x^(-n))))^q) (((e+f (x^n)))^r)dx  ⟶  ∫(x^(n (p+r)))(((b+a (x^(-n))))^p) (((c+d (x^(-n))))^q) (((f+e (x^(-n))))^r)dx

Program code:

Int[(a_.+b_.*x_^n_.)^p_.*(c_+d_.*x_^mn_.)^q_.*(e_+f_.*x_^n_.)^r_.,x_Symbol] :=
  Int[x^(n*(p+r))*(b+a*x^(-n))^p*(c+d*x^(-n))^q*(f+e*x^(-n))^r,x] /;
FreeQ[{a,b,c,d,e,f,n,q},x] && EqQ[mn,-n] && IntegerQ[p] && IntegerQ[r]

3:  ∫(((a+b (x^n)))^p) (((c+d (x^(-n))))^q) (((e+f (x^n)))^r)dx  when  q∉ℤ

Derivation: Piecewise constant extraction

Basis: (∂_x)(((x^(n q)) (((c+d (x^(-n))))^q))/(((d+c (x^n)))^q))==0

Basis: (((x^(n q)) (((c+d (x^(-n))))^q))/(((d+c (x^n)))^q))==(((x^(n FracPart[q])) (((c+d (x^(-n))))^(FracPart[q])))/(((d+c (x^n)))^(FracPart[q])))

Rule 1.1.3.5.5.3: If  q∉ℤ, then

∫(((a+b (x^n)))^p) (((c+d (x^(-n))))^q) (((e+f (x^n)))^r)dx  ⟶  (((x^(n FracPart[q])) (((c+d (x^(-n))))^(FracPart[q])))/(((d+c (x^n)))^(FracPart[q])))∫(((((a+b (x^n)))^p) (((d+c (x^n)))^q) (((e+f (x^n)))^r))/(x^(n q)))dx

Program code:

Int[(a_.+b_.*x_^n_.)^p_.*(c_+d_.*x_^mn_.)^q_*(e_+f_.*x_^n_.)^r_.,x_Symbol] :=
  x^(n*FracPart[q])*(c+d*x^(-n))^FracPart[q]/(d+c*x^n)^FracPart[q]*Int[(a+b*x^n)^p*(d+c*x^n)^q*(e+f*x^n)^r/x^(n*q),x] /;
FreeQ[{a,b,c,d,e,f,n,p,q,r},x] && EqQ[mn,-n] && Not[IntegerQ[q]]

Rules for integrands of the form(((a+b (x^n)))^p) (((c+d (x^n)))^q) ((((Subscript[e, 1])+(Subscript[f, 1]) (x^(n/2))))^r) ((((Subscript[e, 2])+(Subscript[f, 2]) (x^(n/2))))^r)

1.  ∫(((a+b (x^n)))^p) (((c+d (x^n)))^q) ((((Subscript[e, 1])+(Subscript[f, 1]) (x^(n/2))))^r) ((((Subscript[e, 2])+(Subscript[f, 2]) (x^(n/2))))^r)dx  when  (Subscript[e, 2]) (Subscript[f, 1])+(Subscript[e, 1]) (Subscript[f, 2])==0

1:  ∫(((a+b (x^n)))^p) (((c+d (x^n)))^q) ((((Subscript[e, 1])+(Subscript[f, 1]) (x^(n/2))))^r) ((((Subscript[e, 2])+(Subscript[f, 2]) (x^(n/2))))^r)dx  when  (Subscript[e, 2]) (Subscript[f, 1])+(Subscript[e, 1]) (Subscript[f, 2])==0 ∧ (r∈ℤ ∨ (Subscript[e, 1])>0 ∧ (Subscript[e, 2])>0)

Derivation: Algebraic simplification

Basis: If  (Subscript[e, 2]) (Subscript[f, 1])+(Subscript[e, 1]) (Subscript[f, 2])==0 ∧ (r∈ℤ ∨ (Subscript[e, 1])>0 ∧ (Subscript[e, 2])>0), then ((((Subscript[e, 1])+(Subscript[f, 1]) (x^(n/2))))^r) ((((Subscript[e, 2])+(Subscript[f, 2]) (x^(n/2))))^r)==((((Subscript[e, 1]) (Subscript[e, 2])+(Subscript[f, 1]) (Subscript[f, 2]) (x^n)))^r)

Rule: If  (Subscript[e, 2]) (Subscript[f, 1])+(Subscript[e, 1]) (Subscript[f, 2])==0 ∧ (r∈ℤ ∨ (Subscript[e, 1])>0 ∧ (Subscript[e, 2])>0), then

∫(((a+b (x^n)))^p) (((c+d (x^n)))^q) ((((Subscript[e, 1])+(Subscript[f, 1]) (x^(n/2))))^r) ((((Subscript[e, 2])+(Subscript[f, 2]) (x^(n/2))))^r)dx  ⟶  ∫(((a+b (x^n)))^p) (((c+d (x^n)))^q) ((((Subscript[e, 1]) (Subscript[e, 2])+(Subscript[f, 1]) (Subscript[f, 2]) (x^n)))^r)dx

Program code:

Int[(a_+b_.*x_^n_)^p_.*(c_+d_.*x_^n_)^q_.*(e1_+f1_.*x_^n2_.)^r_.*(e2_+f2_.*x_^n2_.)^r_.,x_Symbol] :=
  Int[(a+b*x^n)^p*(c+d*x^n)^q*(e1*e2+f1*f2*x^n)^r,x] /;
FreeQ[{a,b,c,d,e1,f1,e2,f2,n,p,q,r},x] && EqQ[n2,n/2] && EqQ[e2*f1+e1*f2,0] && (IntegerQ[r] || GtQ[e1,0] && GtQ[e2,0])

2:  ∫(((a+b (x^n)))^p) (((c+d (x^n)))^q) ((((Subscript[e, 1])+(Subscript[f, 1]) (x^(n/2))))^r) ((((Subscript[e, 2])+(Subscript[f, 2]) (x^(n/2))))^r)dx  when  (Subscript[e, 2]) (Subscript[f, 1])+(Subscript[e, 1]) (Subscript[f, 2])==0

Derivation: Piecewise constant extraction

Basis: If  (Subscript[e, 2]) (Subscript[f, 1])+(Subscript[e, 1]) (Subscript[f, 2])==0, then (∂_x)((((((Subscript[e, 1])+(Subscript[f, 1]) (x^(n/2))))^r) ((((Subscript[e, 2])+(Subscript[f, 2]) (x^(n/2))))^r))/((((Subscript[e, 1]) (Subscript[e, 2])+(Subscript[f, 1]) (Subscript[f, 2]) (x^n)))^r))==0

Rule: If  (Subscript[e, 2]) (Subscript[f, 1])+(Subscript[e, 1]) (Subscript[f, 2])==0, then

∫(((a+b (x^n)))^p) (((c+d (x^n)))^q) ((((Subscript[e, 1])+(Subscript[f, 1]) (x^(n/2))))^r) ((((Subscript[e, 2])+(Subscript[f, 2]) (x^(n/2))))^r)dx  ⟶  
((((((Subscript[e, 1])+(Subscript[f, 1]) (x^(n/2))))^(FracPart[r])) ((((Subscript[e, 2])+(Subscript[f, 2]) (x^(n/2))))^(FracPart[r])))/((((Subscript[e, 1]) (Subscript[e, 2])+(Subscript[f, 1]) (Subscript[f, 2]) (x^n)))^(FracPart[r])))∫(((a+b (x^n)))^p) (((c+d (x^n)))^q) ((((Subscript[e, 1]) (Subscript[e, 2])+(Subscript[f, 1]) (Subscript[f, 2]) (x^n)))^r)dx

Program code:

Int[(a_+b_.*x_^n_)^p_.*(c_+d_.*x_^n_)^q_.*(e1_+f1_.*x_^n2_.)^r_.*(e2_+f2_.*x_^n2_.)^r_.,x_Symbol] :=
  (e1+f1*x^(n/2))^FracPart[r]*(e2+f2*x^(n/2))^FracPart[r]/(e1*e2+f1*f2*x^n)^FracPart[r]*
    Int[(a+b*x^n)^p*(c+d*x^n)^q*(e1*e2+f1*f2*x^n)^r,x] /;
FreeQ[{a,b,c,d,e1,f1,e2,f2,n,p,q,r},x] && EqQ[n2,n/2] && EqQ[e2*f1+e1*f2,0]